package cn.bearspark.emoji.rpc;

import cn.bearspark.emoji.dto.AddEmojisDTO;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 表情包模块服务的远程调用接口
 *
 * @author f
 */
public interface EmojiRpc {

    /**
     * 获取所有表情包的图片路径
     *
     * @return 所有表情包的图片路径
     */
    List<String> listAllEmojis();

    /**
     * 保存其它模块中使用的表情包的路径
     *
     * @param addEmojisDTO 数据传输对象
     */
    void addEmojiList(AddEmojisDTO addEmojisDTO);

    /**
     * 批量获取数据中使用的表情包集合
     *
     * @param moduleCode      模块的枚举值
     * @param moduleDataIdSet 数据的主键 id 集合
     * @return 数据中使用的表情包集合的映射，key：数据的主键 id，value：数据中使用的表情包集合
     */
    Map<Long, List<String>> mapEmojiSet(int moduleCode, Set<Long> moduleDataIdSet);

    /**
     * 删除指定模块下指定数据的所有表情包
     *
     * @param moduleCode   模块的枚举值
     * @param moduleDataId 数据的主键 id
     */
    void delete(int moduleCode, long moduleDataId);
}
